CC = gcc
CFLAGS = -Wall -g
LDFLAGS = -ldl

all: main libA.so libB.so

main: main.c libB.so
	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)

# -fvisibility=hidden
libA.so: libA.c
	$(CC) $(CFLAGS) -shared -o $@ $<   

libB.so: libB.c libA.so
	$(CC) $(CFLAGS) -shared -o $@ $< -L. -lA $(LDFLAGS)

clean:
	rm -f main libA.so libB.so

.PHONY: all clean
